package cn.edu.zut.project1.service;

import cn.edu.zut.project1.dto.ChangeProductDTO;
import cn.edu.zut.project1.dto.ProductDTO;
import cn.edu.zut.project1.pojo.Product;

import java.util.List;

/**
 * 商品业务逻辑接口
 * 定义商品的相关方法
 */

public interface ProductService {

    /**
     * 1.发布商品
     * userId为商品发布时所属的用户
     */

    void publishProduct(ProductDTO productDTO, Integer userId);

    /**
     * 2.查询当前用户的商品列表
     */
    List<Product> getMyProduct(Integer userid);

    /**
     * 3.查询商品详细信息
     */
    Product getProductDetail(Integer productId);

    /**
     * 4.商品下价/标记已卖出
     */
    void updateProductStatus(Integer productId, Integer status, Integer userId);

    /**
     * 5. 查询所有在售商品(返回首页)
     */
    List<Product> getAllOnSaleProducts();

    // 6. 修改商品信息
    void updateProduct(ChangeProductDTO productDTO , Product product, Integer userId);

    // 7. 删除商品（可选）
    void deleteProduct(Integer productId, Integer userId);

    /**
     * 8. 根据商品类别展示商品
     */
    List<Product> getProductsByCategory(Integer categoryId);
}
